<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="../lib/vue-2.6.7.js"></script>
</head>
<style type="text/css">
    .inner{
        background-color: antiquewhite;
        height: 200px;
        width: 100%
    }
    .item{
        width: 100px;
        height: 100px;
        background-color: aquamarine;
        margin: 0 auto;
    }
</style>
<body>
    <div id="app">
        <div class="inner" @click="divHandler">
           <!--通过事件修饰符.stop成功阻止了button上的事件冒泡--> 
            <input type="button" value="冒泡" @click.stop="btnHandler">
            <!--.prevent阻止了默认跳转，和事件冒泡-->
            <a href="www.baidu.com" @click.prevent.stop>百度</a>
            <!--事件捕获capture，可以捕获到子元素的事件，与冒泡机制执行顺序相反-->
            <input type="button" value="捕获" @click="btnHandler2">
            <!--只当在 event.target 是当前元素自身时触发处理函数
            换句话说，此元素不会执行子元素冒泡的事件，相当于里面加了一个判断
            但是自己的冒泡没有阻止。
            
            -->
            <div class="item" @click.self="itemHandler">
                <button @click="selfbtn">sure</button>
            </div>
        </div>
    </div>
    <script>
        const vm=new Vue({
            el:"#app",
            methods: {
              divHandler:function(){
                alert("触发了div点击事件")
              },
              btnHandler:function(){
                  alert("触发了btn点击事件")
              },
              btnHandler2(){
                  alert("事件捕获btn")
              },
              itemHandler(){
                  alert("itemHandler执行")
                  console.log(event.target)
              },
              selfbtn(){
                  alert(".self btn触发")
              } 
            },
        })
    </script>
</body>
</html>